package com.jd.scaffold.common.utils;

/** 
 * 描述:字段名称转换操作工具类
 * <p>创建人：jrzhangwei 创建日期：2014年7月25日 </p>
 * @version V1.0  
 */
public class ColumnUtil{

	/**
	 * 
	 * 描述:根据字段名称转化成类字段属性
	 * <p>创建人：jrzhangwei , 2014年7月25日 下午6:23:12</p>
	 * @param columnName 字段名称
	 * @return
	 */
	public static String getcolumnNameToDomainPropertyName(String columnName) {
		columnName = columnName.toLowerCase();
		String split[] = columnName.split("_");
		if (split.length > 1) {
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i < split.length; i++) {
				String tempColumnName = (new StringBuilder(String.valueOf(split[i].substring(0, 1).toUpperCase())))
						.append(split[i].substring(1, split[i].length())).toString();
				sb.append(tempColumnName);
			}

			columnName = sb.toString();
			columnName = (new StringBuilder(String.valueOf(columnName.substring(0, 1).toLowerCase()))).append(
					columnName.substring(1, columnName.length())).toString();
			return columnName;
		} else {
			columnName = (new StringBuilder(String.valueOf(split[0].substring(0, 1).toLowerCase()))).append(
					split[0].substring(1, split[0].length())).toString();
			return columnName;
		}
	}

	/**
	 * 描述:根据类属性值获取字段名称
	 * <p>创建人：jrzhangwei , 2014年7月25日 下午5:48:40</p>
	 * @param fieldName 属性名称
	 * @return
	 */
	public static String getcolumnNameByDomainPropertyName(String fieldName) {
		StringBuffer columnName = new StringBuffer();
		fieldName = CurrencyUtils.trimToEmpty(fieldName);
		if("".equals(fieldName)){
			return columnName.toString();
		}
		char[] fieldNames = fieldName.toCharArray();
		for(char ch :fieldNames){
			if(Character.isUpperCase(ch)){
				columnName.append("_"); 
			}
			columnName.append(Character.toUpperCase(ch));
		}
		return columnName.toString();
	}
	
}
